Modems are telecommunication devices used to transfer information between a first digital device, e.g., a computer, and a communication medium, such as a twisted pair telephone line (referred to hereinafter as a “twisted pair”), for communication with a second device at a telephone company central office (TCCO), for example. Typically, modem modems are capable of transmitting a transmit signal and receiving a receive signal from the TCCO over the same twisted pair telephone line simultaneously, i.e., full-duplex data transmission. To cancel any echoes of the transmit signal that may return over the twisted pair telephone line and interfere with the receive signal, an echo canceler is used to create an echo cancellation signal that is subtracted from the receive signal. Echo cancellation is necessary to increase data transmission rates and improve overall performance.
One system for communicating over a twisted pair incorporates asymmetric digital subscriber lines (ADSL). ADSL systems can provide very high data speeds, such as on the order of several megabits per second, over a standard twisted pair. Unlike the traditional data modems used for analog communication with a TCCO via a twisted pair, ADSL requires modems both at the subscriber end and at the TCCO end. Current ADSL systems employ discrete multitone (DMT) technology to implement high bandwidth communications, such as for digital TV broadcast, on demand video, high speed video-based internet access, work at home digital file transfer, teleconferencing, home shopping, and other information services over existing twisted pair telephone lines.
Several DMT standards have been promulgated. For instance, the International Telecommunications Union (ITU) has promulgated a standard for ADSL that is commonly termed G.lite and which is set forth in ITU-T specification G.992.2, incorporated herein by reference. Another standard, promulgated by ANSI, is commonly termed Heavy ADSL and is set forth in ANSI specification T1.413, issue 2, also incorporated herein by reference. In DMT communications, data is sent in frames. A frame is comprised of a plurality of samples, each frame including data samples and cyclic prefix samples. Data samples comprise most of the frame and the collection of data samples in a single frame comprise one DMT symbol. The cyclic prefix comprises samples that are added at the beginning of each frame such that the cyclic prefix samples are between the DMT symbols in the data stream. The purpose of the cyclic prefix is to help avoid inter-symbol interference (ISI). The frame and cyclic prefix is of a standardized length. For example, in heavy ADSL, each symbol comprises 512 samples with 256 tones (32 tones for upstream communications), each tone having a real and an imaginary portion. Heavy ADSL utilizes a cyclic prefix of length L=32 samples. Accordingly, a frame has 544 samples.
FIG. 1 is a block diagram of the basic ADSL modem functions, as would be well known to those of skill in the art. The upper half of the diagram represents functions in the transmit direction while the lower half represents functions in the receive direction.
It should be noted that FIG. 1 is a functional block diagram and that the blocks shown therein do not necessarily correspond to separate physical circuits. In fact, most if not all of the functions will be performed by one or more digital processors (DP) 100 such as, but not limited to, a digital signal processor, a micro processor, a programmed general purpose computer, etc. It also is possible that part or all of the functions of some of the blocks may be implemented by analog circuitry.
In the transmit direction, digital data is generated, scrambled, and encoded by a transmit encoder 102. Digital data for transmission is generated by the digital processor (DP) via a transmitter 104. The digital data is passed from the transmitter 104 to a scrambler 106 that scrambles the data for transmission. The data is then processed through a forward error correction (FEC) encoder 108 which adds syndrome bytes to the data. The syndrome bytes will be used for error correction by a receiver at the TCCO 110. Next, a quadrature amplitude modulation (QAM) encoder 112 encodes the transmit data using quadrature amplitude modulation.
The scrambled and encoded data is then converted from the frequency domain to the time domain via an Inverse Fast Fourier Transform (IFFT) 114. An interpolator 116 interpolates the output of the IFFT 114. For example, if the interpolator 116 is a 1:4 interpolator and the IFFT 114 produces 128 samples, the interpolator produces 512 samples from the 128 samples output from the IFFT 114. A cyclic prefix is added to each frame by a cyclic prefix adder 118, e.g., 32 samples. The data is then converted from digital to analog by a coder/decoder for transmission over the twisted pair 122 to the TCCO 110 via a hybrid circuit 124.
In the receive direction, a receive signal is passed from the twisted pair 122 to the CODEC 120 via the hybrid circuit 124. The CODEC 120 converts the receive signal from analog to digital and passes it to a time domain equalizer (TDQ) 126 to shorten the channel impulse response. Then, the cyclic prefix is removed by a cyclic prefix subtractor 128.
An echo canceler (EC) 132 is coupled between the transmit path and the receive path to create an echo cancellation signal based on the transmit signal. Using an algebraic combining unit 134, the echo cancellation signal is subtracted from the receive signal to cancel any echo of the transmit signal that could interfere with the receive signal.
The echo compensated signal is converted to the frequency domain by a fast Fourier transform (FFT) 136. The receive signal out of the FFT 136, which now has had the cyclic prefix removed and has been converted to the frequency domain is sent to the frequency domain equalizer (FDQ) 130 to compensate for channel distortion in the receive signal.
The receive signal is then decoded by a receive decoder 138 to generate a data signal for processing by the DP 100. The receive signal is processed through a QAM decoder 140. That is followed by an FEC decoder 142, which uses the syndrome bits that were added by a transmit path FEC encoder at the TCCO 110 to perform forward error correction. Finally, the data is descrambled by a descrambler 144 to extract a data signal that is forwarded to the DP 100 for processing via a receiver 146.
The output of the FFT 136 also is sent to a timing recovery circuit 148 that controls the CODEC 120 to synchronize the CODEC 120 to the timing of the data received from the TCCO 110. Essentially, the timing recovery process is a feedback process in which timing pilot tones are detected and used to continuously adjust the CODEC timing so as to sample the received data at the appropriate sampling points.
Echo cancellation using a time domain echo canceler is computationally expensive. The computations performed by the time domain echo canceler require a great deal of processing by the DP 100, which uses processing power that could be utilized for other tasks. Accordingly, there is a need for apparatus and devices capable of echo cancellation that are more efficient, thereby freeing processing power for performing other tasks. The present invention fulfills this need among others.